package com.weds.edpf.core.mapper;

import com.weds.core.annotation.MyBatisDao;
import com.weds.edpf.core.entity.DtAcTypeEntity;
import com.weds.edpf.core.entity.DtPhotoEntity;
import com.weds.edpf.core.entity.UserEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author zcz
 * @Description 人员管理
 * @Date 2020-06-02
 */
@MyBatisDao("userMapperNew")
public interface UserMapper {

    /**
     * 判断工号是否被其他人占用
     * @param userNo
     * @param userSerial
     * @return
     */
    int getCountByUserNo(@Param("userNo") String userNo,@Param("userSerial") String userSerial);
    /**
     * 根据身份证是否重复
     * @param userId
     * @return
     */
    int getCountByUserId(String userId);

    /**
     * 判断身份证号是否被其他人占用
     * @param userId
     * @param userSerial
     * @return
     */
    int getCountByUserIdAndUserSerial(@Param("userId") String userId,@Param("userSerial") long userSerial);

    /**
     * 判断工号是否被占用
     * @param userId
     * @param userSerial
     * @return
     */
    int getCountByUserNoAndUserSerial(@Param("userNo") String userId,@Param("userSerial") long userSerial);

    /**
     * 判断工号是否被占用
     * @param acNo
     * @return
     */
    int getCountByAcNo(String acNo);

    /**
     * 账户信息
     * @param acBh
     * @return
     */
    DtAcTypeEntity getDtAcTypeByAcBh(String acBh);

    /**
     * 修改人员为有账户
     * @param userSerial
     * @return
     */
    int updateUserAcByUserSerial(String userSerial);

    /**
     * 新增
     * @param record
     * @return
     */
    int insert(UserEntity record);

    /**
     * 批量新增
     * @param list
     * @return
     */
    int insertBatch(@Param("list") List<UserEntity> list);

    /**
     * 条件新增
     * @param record
     * @return
     */
    int insertSelective(UserEntity record);

    /**
     * 主键查询详情
     * @param userSerial
     * @return
     */
    UserEntity selectByPrimaryKey(Long userSerial);

    /**
     * 批量修改
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(UserEntity record);

    /**
     * 修改
     * @param record
     * @return
     */
    int updateByPrimaryKey(UserEntity record);

    /**
     * 查询列表
     * @param record
     * @return
     */
    List<UserEntity> selectListByEntity(UserEntity record);

    /**
     * 批量删除
     * @param list
     * @return
     */
    int deleteBatchByKeys(@Param("list") List<UserEntity> list);

    /**
     * 基本信息 人员编辑界面
     * @param userSerial
     * @return
     */
    Map<String,String> getUserBasicInfoByUserSerial(@Param("userSerial")String userSerial);

    /**
     * 员工照片 人员编辑界面
     * @param userSerial
     * @return
     */
    DtPhotoEntity getPhoto(String userSerial);

    /**
     * 删除部门审批人
     * @param moduleId
     * @param userSerial
     * @return
     */
    int deleteAcDepUser(@Param("moduleId")String moduleId,@Param("userSerial")String userSerial);

    /**
     * 修改消费记录表中的部门序号
     * @param depSerial
     * @param userSerial
     * @return
     */
    int updateXfMxDepSerial(@Param("depSerial")String depSerial,@Param("userSerial")String userSerial);

    /**
     * 根据用户编号删除微信openid
     * @param userSerial
     * @return
     */
    int deleteWxLoginOpenidByUserSerial(String userSerial);

    /**
     * 根据用户编号查询权限组名称
     * @param userSerial
     * @return
     */
    String getAcNameByUserSerial(String userSerial);

    /**
     * 根据用户编号查询部门审批人数量
     * @param userSerial
     * @return
     */
    Integer getDepCustCountByUserSerial(String userSerial);

    /**
     * 修改人员状态
     * @param userSerial
     * @return
     */
    Integer updateUserTypeByUserSerial(@Param("userType")Integer userType,@Param("userSerial")String userSerial);

}